iT邦幫忙

2024 iThome 鐵人賽

0
自我挑戰組

從0開始學資安系列 第 24

Day24 Docker安全

  • 分享至 

  • xImage
  •  

容器安全理論

Docker 的隔離機制

Docker 是一種軟體平台,可以快速地建立、測試和部署應用程式。Docker 將軟體封裝到名為容器的標準化單位,其中包含程式庫、系統工具、程式碼和執行時間等執行軟體所需的所有項目。
這是一種應用層級的虛擬化技術,主要依賴於兩個 Linux 的核心功能來實現容器內部的資源隔離:

Namespaces(命名空間)

這是一種機制,用來隔離應用程式對系統資源的視圖。不同的命名空間能夠隔離如進程 ID、網絡資源、文件系統等。常見的命名空間包括:

  1. PID namespace: 每個容器內的進程有自己的 PID 樹,避免與其他容器或宿主機的進程混淆。
  2. Net namespace: 每個容器有自己的虛擬網絡接口,提供對網絡資源的隔離。
  3. Mount namespace: 每個容器有自己隔離的文件系統視圖,保護宿主機文件免受容器的影響。

Control Groups(cgroups)

這是一個 Linux 功能,用於限制、監控和隔離容器的資源使用,例如 CPU、記憶體、I/O 等。它確保一個容器的高資源使用不會影響其他容器或宿主機的穩定性。

安全風險

雖然 Docker 使用了這些技術來進行隔離,但仍有可能出現「容器逃逸」漏洞,攻擊者可能利用這些漏洞突破隔離限制,對宿主機發動攻擊。例如,歷史上曾出現過使用未修補的漏洞從容器中逃逸至宿主機的事件。因此,保持系統和 Docker 的最新更新是至關重要的。

Docker 映像檔的安全問題

Docker 映像檔是容器運行的基礎,它包含了操作系統、應用程序以及所需的依賴。映像檔的安全性至關重要,主要有以下幾個風險:

  1. 過時或有漏洞的映像檔: 映像檔中的軟件包如果不更新,可能包含已知漏洞,這些漏洞可被攻擊者利用。
  2. 來自不可信來源的映像檔: 在 Docker Hub 或其他存儲庫中,有許多第三方提供的映像檔。使用這些映像時必須非常小心,因為不可信的映像檔可能包含惡意軟件或被惡意配置。

解決方式

  1. 使用官方映像或可信來源: Docker Hub 上有一些官方的映像檔,它們經過更嚴格的安全審查。
  2. 定期更新映像檔: 不斷跟蹤映像中的軟件更新,避免使用已知漏洞的過時映像檔。
  3. 最小化映像檔: 只包含運行應用所需的最小組件,減少攻擊面。例如,使用 alpine 這種精簡的 Linux 版本作為基礎映像。

資料來源

https://aws.amazon.com/tw/docker/
https://philipzheng.gitbook.io/docker_practice/introduction/what
https://github.com/twtrubiks/docker-tutorial


上一篇
Day23 加密通信與vpn
下一篇
Day25 滲透測試原理
系列文
從0開始學資安30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言